#include<stdio.h>
#include<unistd.h>
#include<unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include<stdlib.h>

char* addenv[] = {
    (char*)"MYVALUE=123456", 
    (char*)"MYVALUE1=123456", 
    (char*)"MYVALUE2=123456",
    NULL 
};

int main()
{
    printf("进程开始\n");
    if(fork() == 0)
    {
        sleep(1);
        char* const argv[] = {
           (char* const)"./other",
           (char* const) "-a",
           (char* const) "-b",
           (char* const) "-c",
           (char* const) "-d",
            NULL 
        };
        extern char** environ;
        for(int i = 0;addenv[i];i++)
        {
            putenv(addenv[i]);
        }
        execvpe("./other",argv,environ);
        // putenv("MYVAL=12345");
       //  execvp(argv[0],argv);
        // execvpe("./other",argv,addenv);
        exit(1);
    }
    waitpid(-1,NULL,0);
    printf("进程结束\n");
    return 0;
}
//int main()
//{
//    printf("进程开始\n");
//    if(fork() == 0)
//    {
//        sleep(1);
//        char* const argv[] = {
//           (char* const)"ls",
//           (char* const) "-al",
//            NULL 
//        };
//        execvp(argv[0],argv);
//        //execv("/usr/bin/ls",argv);
//        //execlp("ls","ls", "-al",NULL);
//        exit(1);
//    }
//    waitpid(-1,NULL,0);
//    printf("进程结束\n");
//    return 0;
//}

//int main()
//{
//    printf("我是一个进程，我的pid是：%d\n",getpid());
//    execl("./other","./other",NULL);
//    printf("进程调用结束\n");
//    return 0;
//}
//
//int main()
//{
//    printf("进程开始\n");
//    if(fork() == 0)
//    {
//        sleep(1);
//        execl("/usr/bin/ls","ls", "-al",NULL);
//        exit(1);
//    }
//    waitpid(-1,NULL,0);
//    printf("进程结束\n");
//    return 0;
//}


//int main()
//{
//    printf("进程开始\n");
//    execl("/usr/bin/ls","ls","-a","-l",NULL);
//    printf("进程结束\n");
//    return 0;
//}







